package io.fredia.common.web;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 线程版生成订单号工具
 * 
 * @author : fredia
 * @since : 2017年10月24日
 * @version : v0.0.1
 */
public class OrderIdUtils extends Thread {

	private static long orderNum = 0l;
	private static String date;

	/**
	 * 生成订单编号
	 * 
	 * @param prefix
	 * @return
	 * @author : fredia
	 * @since : 2017年10月24日
	 * @return :String
	 */
	public static synchronized String getOrderNo(String prefix) {
		String str = new SimpleDateFormat("yyMMddHHmm").format(new Date());
		if (date == null || !date.equals(str)) {
			date = str;
			orderNum = 0l;
		}
		orderNum++;
		long orderNo = Long.parseLong((date)) * 10000;
		orderNo += orderNum;
		;
		return prefix + orderNo + "";
	}

	public static void main(String[] args) throws InterruptedException {
		for (int i = 0; i < 10000; i++) {
			System.out.println(OrderIdUtils.getOrderNo("lyk"));
			Thread.sleep(1000);
		}
	}
}